
// [...new Set([])] ==> 这样就可以了

// for循环判断
; (function () {
    //return
    let arr = [1]

    for (var j = 0; j < arr.length; j++) {
        console.log('===')
    }
    console.log(j); // 1

    // 这个顺序是
    // var j=0
    // 走一下判断 j<arr.length
    // 执行内部函数
    // j++

    // 由此可以看出,如果for循环没有打断,
    // 那么 j应该最终等于arr.length
})();


// 双重数组循环判断
; (function () {
    return
    var array = [1, 1, '1', '12'];

    function unique(array) {
        // res用来存储结果
        var res = [];
        for (var i = 0, arrayLen = array.length; i < arrayLen; i++) {
            for (var j = 0, resLen = res.length; j < resLen; j++) {

                if (array[i] === res[j]) {
                    break;
                }
            }

            // 如果array[i]是唯一的，那么执行完循环，j等于resLen
            // 因为没有一个重复的,就不会触发break被打断,最后j++就会等于resLen
            if (j === resLen) {
                res.push(array[i])
            }
        }
        return res;
    }

    console.log(unique(array)); // [1, "1"]


})();


// indexOf方法
; (function () {
    //return
    var array = [1, 1, '1'];

    function unique(array) {
        var res = [];
        for (var i = 0, len = array.length; i < len; i++) {
            var current = array[i];
            if (res.indexOf(current) === -1) {
                res.push(current)
            }
        }
        return res;
    }

    console.log(unique(array));

})();